登录 白背景

2596. 检查骑士巡视方案

https://leetcode.cn/problems/check-knight-tour-configuration/description

  • 难度:中等
  • 提交时间:2023.10.31 18:54
  • 4ms 击败 93.21%使用 Go 的用户
  • 3.11MB 击败 100.00%使用 Go 的用户

func checkValidGrid(grid [][]int) bool {
    if grid[0][0] != 0 {
        return false
    }
    yLen := len(grid)
    if yLen == 3 {
        return false
    }
    xLen := len(grid[0])
    save := make([][]int, yLen*xLen)
    for y := 0; y < yLen; y++ {
        for x := 0; x < xLen; x++ {
            save[grid[y][x]] = []int{y, x}
        }
    }
    for i, item := range save {
        if i == 0 {
            continue
        }
        if Abs(save[i-1][0]-item[0])*Abs(save[i-1][1]-item[1]) != 2 {
            return false
        }
    }
    return true
}

func Abs[T int8 | int32 | int64 | int | float32 | float64](x T) T {
    if x < 0 {
        return -x
    }
    return x
}